package com.tedu.day02.oop;

/**
 * this关键字--------super关键字-----使用完全一致
 * 不需要继承-----当前类，指代当前
 * 使用方式：调用当前类的属性，方法。构造器
 *                  this.属性      【当前类的属性赋值】
 *                                 出现构造器：出现方法中
 *                                 区别当前类的属性 与参数“名称”一致
 *                      this.方法
 *                      this（）      多个有参构造器
 *
 *       笔试题：this跟super关键字区别：
 *     this   调用本类的属性，方法，构造器
 *     super  调用父类的属性，方法，构造器  存在继承关系，使用super
 *     this（）与super（）
 *     this（）调用本类的其他构造器-----构造器首行
 *     super（）调用父类的其他构造器-----子类构造器首行
 *     this（）与super（）可以同时出现在对象构造器中
 */
public class This关键字 {
    int i;  //属性-----很少赋值【声明未赋值】-----构造器或方法中赋值
    int j;   //属性-----很少赋值【声明未赋值】-----构造器或方法中赋值

    public This关键字(int i, int j) {
        this.i = i;
        this.j = j;
    }

    //构造器：有参    需求：创建1个参数对象，给I跟J赋值【跟super（）一样】
    public This关键字(int i) {
        this(3,4);//调用本类其他有参构造器==传参 i=3
        this.i = i;     //常见：   this属性【当前类下属性】=参数   i=1
                         //赋值    this.i=1；
    }
   //方法----this.方法
    public void testI() {
        System.out.println("我是I");
    }
    public void testJ() {//调取----输出：我是I   我是J
        this.testI();
        System.out.println("我是J");
    }
    public static void main(String[] args) {
       System.out.println(new This关键字(1).j);//属性没有输出语句
        //new This关键字(1).testJ();//方法有输出语句
    }
}
